package org.ala.tcp_feign_common.spring.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Component;


/**
 * tcp版feignclient服务端
 *
 * @author 骆毅(ala)
 * @date 2024年4月20日
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface TcpFeignService {
	
	
	/**
	 * bean的名称，不配默认TcpFeignService_{类名}
	 */
	@AliasFor("name")
	String value() default "";
	/**
	 * 
	 */
	@AliasFor("value")
	String name() default "";
	
	
	/**
	 * 服务请求的根path
	 */
	String path() default "";
	
	/**
	 * 私有线程池配置
	 * <p>	不配默认走公共线程池
	 */
	int coreSize() default -1;
	/**
	 * 私有线程池配置
	 * <p>	不配默认走公共线程池
	 */
	int maxSize() default -1;
	/**
	 * 私有线程池最大等待任务数
	 */
	int queueSize() default 128;

}
